package com.danli;

// 静态变量的方式
public class Singleton7 {


//    private static Object object = new Object();
    // volatile
    // 1. 保证数据的可见性
    //
    // 2.禁止指令重排
    //  1 2 3 4 5
   private static volatile Singleton7 singleton6 = null;

    private Singleton7(){}
    //提供一个公共的静态的方法 返回当前的对象
    public  static Singleton7 getInstance(){
        //
        if(singleton6==null){
            // 1.
            synchronized(Singleton7.class) {
                if(singleton6==null) {
                    singleton6 = new Singleton7();
                }
            }
        }
        return singleton6;
    }
    
}


